package com.ruoyi.invoice.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.invoice.domain.InvoiceBusinessType;
import com.ruoyi.invoice.domain.InvoiceTemplate;
import com.ruoyi.invoice.domain.InvoiceTemplateDetail;
import com.ruoyi.invoice.dto.InvoiceTemplateDTO;
import com.ruoyi.invoice.vo.InvoiceTemplateDetailVO;
import com.ruoyi.invoice.vo.InvoiceTemplateVO;

/**
 * 发票凭证模版Service接口
 * 
 * @author ruoyi
 * @date 2025-03-05
 */
public interface IInvoiceTemplateService 
{
    /**
     * 查询发票凭证模版
     * 
     * @param templateId 发票凭证模版主键
     * @return 发票凭证模版
     */
    public InvoiceTemplateVO selectInvoiceTemplateByTemplateId(Long templateId);

    /**
     * 查询发票凭证模版列表
     * 
     * @param invoiceTemplate 发票凭证模版
     * @return 发票凭证模版集合
     */
    public List<InvoiceTemplate> selectInvoiceTemplateList(InvoiceTemplate invoiceTemplate);

    /**
     * 新增发票凭证模版
     * 
     * @param
     * @return 结果
     */
    public int insertInvoiceTemplate(InvoiceTemplateDTO invoiceTemplateDTO);

    /**
     * 修改发票凭证模版
     * 
     * @param
     * @return 结果
     */
    public int updateInvoiceTemplate(InvoiceTemplateDTO invoiceTemplateDTO);

    /**
     * 批量删除发票凭证模版
     * 
     * @param templateIds 需要删除的发票凭证模版主键集合
     * @return 结果
     */
    public int deleteInvoiceTemplateByTemplateIds(Long[] templateIds);

    /**
     * 删除发票凭证模版信息
     * 
     * @param templateId 发票凭证模版主键
     * @return 结果
     */
    public int deleteInvoiceTemplateByTemplateId(Long templateId);



    Map<String, List<?>> getInvoiceTemplateList();

    List<InvoiceTemplateDetailVO> getTemplateDetail(Long templateId);


}
